import axios from 'axios'
import { Toast } from 'antd-mobile'

const instance = axios.create({
    baseURL: '/api',
    timeout: 10000,
    // headers: {'X-Custom-Header': 'foobar'}
});

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
    // 在发送请求之前显示加载动画
    Toast.show({
        icon: 'loading',
        content: '加载中…',
        duration: 0, // 0 表示不会自动关闭
    })

    const ak = '0110010010000';
    const sessionId = localStorage.getItem('sessionId');
    const userId = localStorage.getItem('userId');
    // 公共请求头入参
    config.headers.ak = ak;
    config.headers.sessionId = sessionId;
    config.headers.userId = userId;
    // 默认表单提交，但若调用方已显式设置（如 application/json），则不覆盖
    if (!config.headers['Content-Type']) {
        config.headers['Content-Type'] = 'application/x-www-form-urlencoded';
    }
    return config;
}, function (error) {
    // 对请求错误关闭加载动画
    Toast.clear()
    return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
    // 对响应数据关闭加载动画
    Toast.clear()
    return response;
}, function (error) {
    // 对响应错误关闭加载动画
    Toast.clear()
    return Promise.reject(error);
});

export default instance